package PaqServidor;

import PaqComunicaciones.CorbaConexionServidor;
import java.util.Vector;
import PaqServidor.Usuario;
import PaqServidor.Asignatura;
import PaqServidor.Sesion;
import com.thoughtworks.xstream.XStream;
import java.util.ArrayList;

public abstract class GestorExaminador extends PaqCORBA.GestorCORBAPOA{
        public ArrayList<Usuario> usuario_t = new ArrayList<Usuario>();
        protected PaqComunicaciones.CorbaConexionServidor corbaConexionServidor;
        public static int COUNTER = 0;
        public static XStream xstream = null;
        public Vector<Sesion> sesiones = new Vector<Sesion>();
	//public Vector<Asignatura> gestionaAsignaturas = new Vector<Asignatura>();
	//public GestorAvisos unnamed_GestorAvisos_;

	public String crearSesion() {
            String nameSesion = "Sesion" + Integer.toString(COUNTER++);
            Sesion sesion = new Sesion(this, nameSesion, corbaConexionServidor);

            addSesion(sesion);

            //El cliente emplear� este nombre para obtener la referencia CORBA al objeto Sesion
            return nameSesion;
            
	}
        //@Override
        void arranca(int puerto, String host) {
            corbaConexionServidor = new CorbaConexionServidor(puerto, host);
            // registrar el sirviente con el nombre del servidor
            corbaConexionServidor.registrarExamenesOnline(this, "Gestor");
        }
        protected void addSesion(Sesion _hilo) {
            sesiones.add(_hilo);
        }

    protected void delSesion(Sesion _hilo) {
        sesiones.remove(_hilo);
    }
}